home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Meeting Pearls 4
/
Meeting Pearls Vol. IV (1996)(GTI - Schatztruhe)[!].iso
/
Pearls
/
libs
/
ReqTools
/
README
< prev
next >
Wrap
Text File
|
1996-06-12
|
60KB
|
1,120 lines
**********************************
reqtools.library
The requester toolkit.
Release 2.6
(c) 1991-1994 Nico François
1995-1996 Magnus Holmgren
**********************************
First of all read the DISTRIBUTION file for information on... er well...
distribution :-)
If you have suggestions or remarks about ReqTools, or if you find any
bugs, please let me know.
Contacting the author:
FidoNet: 2:292/603.10 (Nico Francois)
Internet: nico@augfl.be
Mail: Nico François
Corbielaan 13
B-3060 Bertem
BELGIUM
If you can please use e-mail. That way you'll stand a much better
chance of getting a reply quickly.
----------
IMPORTANT!
----------
As of release 2.3, the programming is made by:
Magnus Holmgren
Kvarnbergsvägen 5
S-444 47 Stenungsund
SWEDEN
FidoNet: 2:203/512.10 (Magnus Holmgren)
Internet: cmh@lls.se
Please contact me instead, for suggestions, remarks, bug reports and the
like (btw, I prefer e-mail too). If you are interested in updating RTPatch
(for some reasons, I'm not really that interested in putting any large
amount of work into it ;), feel free to contact me as well.
Nico sent me the sources since he didn't have the time to work on
ReqTools.
Contents
========
1. Introduction
2. Features
3. Installation
4. Using reqtools.library
1. Introduction
===============
reqtools.library is a standard Amiga shared, runtime library. The
purpose of ReqTools is to make it a lot quicker and easier to build
standard requesters into your programs. ReqTools is designed with
Commodore's style guidelines in mind, all requesters have the look-and-feel
of AmigaDOS Release 2.
If you use ReqTools in your programs you do not have to worry about
requesters too much. You'll have a lot more time to concentrate on the
really important stuff your program does.
The library has been inspired by req.library (by Colin Fox & Bruce
Dawson) and Commodore's own asl.library. You will find it shares a lot of
the features with these two libraries, while it has some additional ones as
well. While asl.library was great in look-and-feel I felt it lacked quite a
bit in the power department. This power _is_ mostly available in
req.library, but this doesn't fit in too well with AmigaDOS Release 2. So
the idea for a new requester library was born.
I tried to make all requesters in ReqTools very powerful, easy to use
and with a very nice new-look 3D interface. Efficiency was also considered
very important. The 2.0 version of the library is about 45K large. I'm
sure you will agree this is not too much considering what ReqTools offers.
ReqTools features the following requesters: a query requester, a
string requester, a number requester, a file requester, a font requester, a
palette requester and new in release 2.0 of ReqTools a volume requester and
a screen mode requester.
2. Features
===========
The requesters have following features:
All requesters:
o have a pixel-perfect Workbench 2.0 3D look, also on Kickstart 1.3.
o Completely localized! If you are using Workbench 2.1 or higher the
text in ReqTools requesters will appear in the language of your
Workbench (if the catalog for this language is available).
o adjust to interlaced screens and to the screen's font (rtEZRequest,
rtGetLong, rtGetString) or to any fixed-width font if the screen's
font is proportional (rtPaletteRequest/rtFileRequest/rtFontRequest).
Requesters can also use any suitable font you specify.
o can appear under the mouse pointer, centered on the
screen/in a window or at the top left of the screen/a window.
o can be used asynchronously.
o check pr_WindowPtr of your process is to find the screen they should
appear on (can be overridden).
o use tags for maximum future extendibility. All standard 2.0 tags
are supported (like TAG_SKIP, TAG_MORE, etc.).
o bring the screen they appear on to the front. The screen that was
in front previously will be put in front again when the requester
finishes (if it is still open).
This behaviour can be switched off.
o will always appear in the visible portion of the screen (support of
virtual screens).
o are extensively tested using enforcer and mungwall debugging tools.
o have the ability to lock the parent window from all user input and
give it a standard wait pointer automatically.
o can share the IDCMP port of the parent window.
o supports a callback hook for handling IDCMP messages from a shared
IDCMP port.
o have keyboard shortcuts for gadgets (key underlined in gadget
label). Use Right Amiga key with shortcut if a string gadget is
active.
o have a zoom gadget.
rtEZRequest, the query requester:
o easy keyboard shortcuts:
- Left Amiga V and Left Amiga B (like the standard requesters).
- Y for positive response.
- N, R, Esc for negative response.
- Return can also be used as a shortcut and can be
associated with any response. The gadget in question
will have its text printed bold.
Default response for Return is the positive response.
- buttons give visual feedback when keyboard shortcuts
are used.
- keyboard shortcuts can be canceled by pressing Shift
before releasing the key.
- keyboard shortcuts can be defined to be any character in the
button's label. The character in question will be underlined.
*NEW* - function keys can be used to select the "first" ten gadgets.
o number of responses only limited by screen width.
o allows for multiple lines of text.
o text can be centered in requester (great for about requesters).
o supports the use of 'printf' formatting codes in text
and in responses.
o can be terminated by IDCMP events.
rtFileRequest, the file requester:
o similar in use and look-and-feel as Asl file requester.
o buffers directories in memory.
o files and directories can be added or removed from the buffer
by the calling program.
o can be put in save mode, disabling double-clicks and asking you if
directories that can't be found (entered manually) should be
created.
o optional callback hook for verification of files before they are
added to the buffer.
o supports multiple selection of files and optionally of directories.
o when multi-select is on All, Clear and Match.. buttons are
available. All selects, and Clear unselects all files. Match..
brings up a requester where the user can enter a pattern to select
files.
o can be used as a directory requester (showing no files).
o optional pattern gadget to match files on.
o shows all devices (with volume names) and all assigns made.
o supports TABCYCLE under 2.0
o pattern matching supports _ALL_ AmigaDOS 2.0 patterns.
o can be used as a volume requester to get a device or an assign
from the user.
o can be resized in height to show more files.
o Shows disk percentage used next to volume names.
o Allows you to enter paths in the filename string gadget. If the
requester finds a path in the filename it will change the directory
to that path. So if you e.g. enter 'Devs:mountlist' in the filename
gadget the requester will read the 'Devs:' directory and set the
filename gadget to 'mountlist'. If you enter 'printers/' it will go
into the printers directory. Enter '/' to go to the parent
directory.
o Completely keyboard controlable: use up and down cursor keys to
select files or directories. Use Shift-Up and Shift-Down to jump
by one window-full. Use Ctrl-Up and Ctrl-Down to jump to the start
or end of the directory.
rtFontRequest, the font requester:
o buffers all fonts in memory.
o shows sample of font you click on.
o can be also be used to select the font's style.
o supports color fonts, can change the screen's palette.
o supports scaled fonts (AmigaOS Release 2 only).
o optional callback hook for verification of fonts before they are
added to the buffer.
o supports TABCYCLE under 2.0
o can be resized in height to show more fonts.
o makes sure selected font is visible in listview when it comes up.
rtScreenModeRequest, the display mode requester (Kickstart 2.0+ only!):
o all modes in the DisplayInfo database can be displayed.
o allows you to pick a standard overscan setting.
o user may enter prefered size or choose to get the defaults.
o number of colors selectable.
o can be put up with the attributes from a given screen.
o optional callback hook for examining a display mode before it is
added to the requester.
o can be resized in height to show more modes.
o makes sure selected mode is visible in listview when it comes up.
rtPaletteRequest, the palette requester:
o features Copy, Swap and Spread functions.
o current values of red, green and blue are displayed.
o returns the selected color.
*NEW* o optionally displays a colorwheel.
rtGetLong, the long integer requester:
o width of requester can be set by caller.
o a minimum and maximum can be supplied and will be displayed
in the requester.
o a value to show up when the requester appears can be supplied.
o can display buttons with several possible responses.
o invisible entry is possible (useful for getting a code number).
o patterned backfill of requester can be switched on or off.
o some line(s) of (centered) text may be displayed above the entry
gadget to give the user some extra information.
rtGetString, the string requester:
o width of requester can be set by caller.
o a string to show up when the requester appears can be supplied.
o can display buttons with several possible responses.
o invisible entry is possible (useful for getting a password).
o patterned backfill of requester can be switched on or off.
o some line(s) of (centered) text may be displayed above the entry
gadget to give the user some extra information.
3. Installation
===============
To install reqtools.library copy it to your Libs: directory by hand, or
run the installation script 'Install' (by using 'Execute' from the Shell or
by double-clicking its icon).
If you are running Workbench 2.1 or higher you will have the possiblity
to use ReqTools in different languages. Just use the appropriate install
script in the Install/Workbench_2.1+ directory.
4. Using reqtools.library
=========================
If you are a C programmer all you need to do is include the correct
header ('libraries/reqtool.h') and open reqtools.library. After that you
can use the functions in the library as if they were C functions. If your
program quits it must of course close the library again. See 'demo.c' for
an example.
Glue code for several compilers/languages is included with ReqTools 2.4.
Look in the Glue directory of the ReqTools distribution to see if glue code
exists for your compiler and/or programming language. If it doesn't and
you write your own please send it to me and I'll include it in the next
release of ReqTools.
Note that the source for the Manx C libraries is the same as for the
SAS/C libraries. See the README.Manx file in the archive
'Glue/Sas-C/LibSource.lha'.
Manx C users may have to edit 'libraries/reqtools.h' and change the
library (GfxBase, IntuitionBase, etc.) fields to rt_GfxBase,
rt_IntuitionBase etc. Seems there is a bug in some versions of the Manx C
compiler that has problems otherwise. Let's hope this gets fixed soon :-)
Functions allowing a variable number of arguments can't be called using
pragmas (in-line library calls, no glue code required). So if you use
these you must always link with LIB:reqtools.lib or LIB:reqtoolsnb.lib (for
SAS-C, or with the specific libraries for your compiler/language).
Assembly programmers should also include the correct files and open
reqtools.library. To call a function they must load A6 with the library
base, put the arguments in the appropriate registers and jump to the
library vector offset of the function they want to call.
Remember to open the library with a specific version number if you wish
to use features only found in that version (for example: screen mode
requester).
All library functions are explained in the autodoc file 'reqtools.doc'.
Enjoy.
5. The Future
=============
This release is only a minor update, so I've tried to keep things as
they were. I don't intend to make any major work to the current sources
(maybe some minor updates and bug fixes), as my intention is to make a
(more or less) complete rewrite of ReqTools. I have the famous TODO file
Nico maintained, and I'll try to add any useful suggestions found therein.
There are also some other nice features planned, like e.g. an API (so that
the application - or external "modules" - can extent ReqTools). Exact
details have not yet been worked out.
If you have a suggestion you don't think is in the TODO file, feel free
to tell me about it.
LIBRARY HISTORY:
*****************************************************************************
RELEASE 1.0 (Library version 37.556 [1.3] - 37.670 [2.0])
First release.
*****************************************************************************
RELEASE 1.0a (Library version 37.557 [1.3] - 37.673 [2.0])
Fixed two minor bugs:
- if a directory could not be found and you re-invoked the file
requester it wouldn't check the directory again.
- devices like PRT:, CON:, etc. now no longer show up in the device
list of the 2.0 file requester.
*****************************************************************************
RELEASE 1.0b (Library version 37.566 [1.3] - 37.678 [2.0])
Fixed bug: entering a pattern when a file requester's directory was
invalid could cause a crash.
rtGetString() and rtGetLong() 2.0 requester windows no longer have close
gadgets.
Font requester entries are "release verify" instead of "immediate".
If no minimum or maximum is given for the GetLong requester it will not
be displayed (1.0 and 1.0a displayed MAXINT or MININT).
Minor cosmetic adjustments to file, font and palette requesters.
Oberon interface to the library included.
*****************************************************************************
RELEASE 1.0c (Library version 37.592 [1.3] - 37.718 [2.0])
Boopsi dispatch function for rtEZRequestA() buttons optimized (ReqTools
for Kickstart 2.0). Occasional flicker just about eliminated.
Enlarged buttons a bit in rtGetLongA(), rtGetStringA() and the file, font
and palette requesters.
Width of scroller gadget in file requester window increased.
File string gadget is cleared when 'All' or 'Match..' is used. This
wasn't done before and could result in unexpected multi-select results.
Visual feedback for keyboard shortcuts improved (rtEZRequestA()). Button
stays depressed as long as the key in question is held down, but still
for a minumum of 1/10 sec. New feature: shortcuts can be canceled by
pressing Shift before releasing the key.
Minor bug fix: keyboard shortcuts V and B now really only work together
with the Left Amiga key. Used to work without the qualifier.
rtEZRequestA(), rtGetLongA() and rtGetStringA() will no longer call the
DOS function Delay(), so they may from now on be called by tasks.
Every ReqTools requester, except the file and font requesters (they use
DOS for obvious reasons), can be called from a task.
EZRequest with only one button now responds to the Return key, whether
EZREQF_NORETURNKEY is set or not.
Fixed small bug in libraries/reqtools.i include file. rtfi_Hook and
rtfo_Hook were followed by a ; and this could lead to problems.
Libraries (reqtoolss.lib and reqtoolssr.lib) for Dice C included.
Pre-release (0.91ß) of RTPatch patcher program included.
*****************************************************************************
RELEASE 1.0d (Library version 37.600 [1.3] - 37.726 [2.0])
rtEZRequestA(), rtGetStringA() and rtGetLongA() now switch the processor
stack to ensure sufficient stack space for the function to succeed.
Fixed bug in rtGetLong() requester in 2.0 version of ReqTools. Used to
return TRUE and a random value if the user pressed Ok when the integer
gadget was empty.
File requester is somewhat larger by default.
Improved automatic requester resizing (if requester would become too big
for the screen).
File requester (in save mode) no longer asks "Create drawer?" when you
entered a drawer string containing a non-existing volume (e.g. 'FOO:').
Entries in file requester are now sorted immediately when you select the
slider gadget and not when you release it (1.3 version of ReqTools).
Latest revision of Oberon interface included.
Modula-2 interface to the library included.
Manx C interface to the library included.
*****************************************************************************
RELEASE 1.0e (Library version 37.600 [1.3] - 37.726 [2.0])
Rearranged directories a bit. All glue code now in one directory.
Installation script now uses Commodore's Installer utility.
Two Modula-2 interfaces to the library are now included, one for M2Sprint
and one for M2Amiga.
Some bugs in the Dice C libs have been fixed (thanks to Magnus Holmgren).
Interface for HiSoft's HighSpeed Pascal included.
*****************************************************************************
RELEASE 2.0 (Library version 38.347 [1.3] - 38.693 [2.0])
All requesters now have keyboard shortcuts.
Kickstart 2.0 version of ReqTools has been localized. As long as the
appropriate catalog file exists ReqTools will appear in the user's
selected langauge.
New requester: rtScreenModeRequestA(). A screen mode requester. Can be
used to get a screen mode, size, depth and overscan type from the user.
This requester is only available on Kickstart 2.0 or higher, but also
present in the Kickstart 1.3 version of ReqTools.
File, font and screenmode requesters are now resizable (in height).
Font, volume and screen mode requesters will now make sure the current
entry is visible in the listview when the requester first comes up.
Improved DOWILDFUNC hook interface. New tag: RTxx_FilterFunc. Old hook
interface (using req->Hook and FREQF_DOWILDFUNC flag) is still
supported, but declared obsolete. Don't use in new code.
Several new tags:
o RT_Locale: specify a locale to be used instead of the default one.
Ignored if locale.library isn't present in the system or you are
using the Kickstart 1.3 version of ReqTools.
o RT_ShareIDCMP and RT_IntuiMsgFunc: All requesters can now share
their IDCMP port with the parent window. A callback hook for
intuition messages received not concerning the requester can also be
set using the RT_IntuiMsgFunc tag.
o RT_LockWindow: Enables you to make ReqTools lock the parent window
from all user input and give the window a standard wait pointer.
After the requester returns the window will be unlocked and will get
its original pointer back.
o RT_Underscore: With this tag it is possible to define keyboard
shortcuts for buttons. You can ask ReqTools to underline a character
in the button's label and use this as a shortcut.
o for rtGetString() and rtGetLong(): RTGS_GadFmt, RTGS_GadFmtArgs,
RTGL_GadFmt and RTGL_GadFmtArgs. With these tags you may give the
user several ways out of the string/long requester.
o for rtGetString() and rtGetLong(): RTGS_Invisible and RTGL_Invisible.
Can be used to switch on invisible typing to get a password or a code
number from the user.
o RTGS_TextFmt, RTGL_TextFmt, RTGS_TextFmtArgs and RTGL_TextFmtArgs:
These tags allow you to supply some line(s) of text that should be
printed above the string/integer gadget in the rtGetString() or
rtGetLong() requesters.
o RTGS_Flags and RTGL_Flags: Set certain flags for rtGetString() and
rtGetLong() requesters. Used to set the GSREQF_CENTERTEXT or
GLREQF_CENTERTEXT flags.
o RTGS_BackFill and RTGL_BackFill: Switch the patterned backfill in
the rtGetString() and rtGetLong() requesters on or off.
o RT_ScreenToFront: Allows you to switch of the default behaviour of
popping the screen the requester appears on to the front.
o RT_TextAttr: Allows you to specify a font a requester should use
instead of the screen or default font.
o RTFI_VolumeRequest: New flavor of file requester: volume requester.
Allows you to easily get a device/assign from the user.
o RTFI_AllowEmpty: Enables you to allow the file requester to accept
an empty filename. Normally cancels the requester if no filename
was entered.
Changes to file requester:
o Shows disk percentage used next to volume names.
o 'Hide .info' cycle gadget gadget in file requester replaced by
'.info' toggle gadget next to filename string gadget.
o Will no longer automatically change directories to their full
pathname. Will only do so when needed (e.g. parent of an assign).
o Allows you to enter paths in the filename string gadget. If the
requester finds a path in the filename it will change the directory
to that path.
o Completely keyboard controlable: use up and down cursor keys to
select files or directories. Use Shift-Up and Shift-Down to jump
by one window-full.
o 1.3 version has a 2.0-look sizing gadget and bottom border.
o Changed 'Disks' to 'Volumes'.
o Changed '(dir)' to 'Drawer' (right justified).
o Assigns now displayed differently (with 'Assign' right justified).
o Added an indicator for number of selected files (if multiselect on).
o No longer shows 'Add', 'Match..' and 'Clear' gadgets if no multi-
select is possible.
New library functions:
o rtLockWindow() and rtUnlockWindow(): easily lock a window from user
input and give it a standard wait pointer.
o rtCloseWindowSafely(): close a window with a shared IDCMP port.
Updated glue code:
o Oberon interface updated for ReqTools V38.
o SAS/C, Manx C and Dice glue code updated for ReqTools V38.
o New HighSpeed Pascal (for ReqTools V38) interface written by
Gunter Indenhoek included.
Demo updated to demonstrate new features of ReqTools 2.0.
Version 1.0 of RTPatch patcher program included. Patches req.library,
arp.library and asl.library to use ReqTools requesters instead.
*****************************************************************************
RELEASE 2.0a (Library version 38.350 [1.3] - 38.693 [2.0])
Aaaargh! Just one day after releasing ReqTools 2.0 a MAJOR bug turned
up in the Kickstart 1.3 version: rtLockWindow() was broken!! Only
turned up when running on 1.3, since on 1.3 there seems to be no return
value from intuition.library/Request() (So C=, your autodocs have a bug
in them as well :-). Bug fixed.
Fixed broken install script for Workbench 1.3.
*****************************************************************************
RELEASE 2.0b (Library version 38.358 [1.3] - 38.803 [2.0])
Installer is no longer distributed with ReqTools. It is copyrighted by
Commodore and can only be distributed under license. If you have
Installer (preferably version 2.12 or higher) make sure it is in your
command path so the install scripts will work. If you don't have
Installer you'll have to install ReqTools manually, sorry.
When you use the up/down arrows in the file requester and no file is
highlighted yet, ReqTools will now highlight the file at the top of
the visible area (instead of the first file in the list).
Some small changes in demo, now demonstrates min/max with rtGetLong(),
return value when RTGS_GadFmt is used and multi-selection in the file
requester.
Changed RTGL_BackFill and RTGS_BackFill tags to use the same spelling as
WA_BackFill in intuition.h (with a capital F). Be sure to install the
new include files.
Install scripts for Workbench 2.0 or higher now also try to update
RTPatch (if the the file is found in C: or SYS:WbStartup).
Added icons for install scripts for all 10 languages. Install strings
are all more or less translated. Catalog translation files of all
languages not supported yet are now also included, making it easier to
translate ReqTools.
From this release on ReqTools will make sure the Dir field of the file
requester structure is pointing to the current directory while in the
file filter callback hook (RTFI_FilterFunc).
Changes in the Kickstart 2.0 version of ReqTools:
o All requesters use simple refresh windows. Window refreshing is a
bit slower, but a lot of chip memory is saved. Very important when
you use the requesters on screens with a lot of colors/bitplanes.
o All requesters have a backfill hook installed that will fill the
background of the window with the DrawInfo pen BACKGROUNDPEN. The
DetailPen and BlockPen of the requesters will now also be set to
DrawInfo pens (BACKGROUNDPEN and SHADOWPEN).
Bug fixes:
o When the RTGL_GadFmt or RTGS_GadFmt tag was used the requester did
not return the correct value.
o Small problem with requester resizing on virtual screens. Maximum
number of entries was restricted to fit the visual area. The maximum
height of the requester's window is now also set correctly.
o Empty (current) directory no longer cancels the directory requester.
o Font requester in Kickstart 1.3 version of the library didn't
show a font if the font was previously opened in another height.
o Field rt_Flags in 'libraries/reqtools.[hi]' changed to rt_RTFlags
since it conflicted with the rt_Flags field in 'rexx/storage.[hi]'.
Shouldn't cause any problems since the field was private anyway.
o Entering a something like 'MAIL:/' to go to the parent directory
of MAIL: now works.
Some small errors and omissions fixed in the autodoc.
French catalog revised by David Lebel. Thank you David for correcting
my lousy french :-)
Italian and Swedish catalog files included (thanks Michele and Patrik).
Updated/bug-fixed Oberon interface included.
Version 1.0a of RTPatch included.
*****************************************************************************
RELEASE 2.0c (Library version 38.362 [1.3] - 38.810 [2.0])
Fixed Enforcer hit in file, font and screenmode requesters of the
Kickstart 2.0 version of the library.
Fixed bug: when the pr_WindowPtr of the calling process was -1 and you
used a tag that needed a parent window (like RT_LockWindow or RT_ReqPos
with REQPOS_CENTERWIN) ReqTools could crash.
Pattern and drawer string gadgets no longer refresh the directory in the
requester if they aren't changed. Especially useful if you cycle
through the string gadgets with TAB (Kickstart 2.0 version).
Included a README file explaining ReqTools' installation scripts need
Commodore's Installer utility.
Include file 'libraries/reqtools.h' fixed. This used a BPTR without
including 'libraries/dos.h'. Thanks to Olaf Barthel for reporting this.
Danish catalog file included (thanks Per).
Version 1.0b of RTPatch included.
*****************************************************************************
RELEASE 2.1 (Library version 38.382 [1.3] - 38.961 [2.0])
New major feature: ReqTools preference editor (Kickstart 2.0+ only)!
o Switch screen to front popping on/off.
o Display drawers before files in file requester.
o Mix drawers and files in file requester.
o Sort entries in file requester immediately.
o Set default position of all requesters.
o Set default size of file, font, screenmode and volume requesters.
o Set minumum and maximum number of entries visible in file, font,
screenmode and volume requesters.
Kickstart 2.0 (or higher) version of ReqTools only:
o The file requester will keep its top entry up to date with what is
typed in the filename string gadget. Pressing the up or down arrow
will select the file that most closely matches the contents of the
filename string gadget.
o Entering of pathnames in the filename string gadget has been
improved. The file requester will now check if what you enter is a
directory. This allows you to enter directories without a trailing
'/' (for example 'SYS:c').
o rtSetWaitPointer() and rtLockWindow() will set the standard Intuition
wait pointer on Kickstart 3.0 machines. Note that rtUnlockWindow()
will _not_ restore the original pointer if it was a new pointerclass
pointer (Kickstart 3.0)!
o File requester is an AppWindow now. This means you can drop disk,
drawer or file icons on the requester's window to go to a directory
or select a file.
o All requesters now set an appropriate bitplane write mask in the
rastport of their windows. This makes them render and scroll much
faster on a screen with lots of bitplanes/colors.
Available system fonts will now be buffered for _all_ font requesters.
This speeds up font requesters enormously, a font scan is generally
needed only once now. The version of ReqTools for Kickstart 2.0 (or
higher) has been made intelligent enough to see if the assign has been
changed between two requests. ReqTools will free the buffer when
memory gets low. Note that to accomplish this ReqTools keeps its
library open count 0. A real open count is kept internally.
File requester will no longer show deferred (late) assigns.
Several bug fixes:
o Small bug: was no longer possible to exit volume/assign list by
pressing Return in the drawer gadget without changing the directory.
o Fixed weird bug with the selection of listview entries. If you
selected a non-existing item and dragged the mouse up, an item above
all others would be complemented. Thanks to Mathias Korsbäck for
reporting this.
o No longer goes into an endless loop when LOCALE: could not be found
when a catalog had to be loaded. Thanks to Holger Kruse for
reporting this.
o Resizing a file requester with an inexisting directory and with the
volume list displayed resulted in a crash.
o Some other miscellaneous bugfixes.
Norwegian catalog file included (thanks Mario).
Improved and bug fixed Dice C libraries included (by Magnus Holmgren).
Includes libs for small code model, large code model and both of these
with the arguments passed in registers.
M2Amiga interface updated for ReqTools V38 by Frank Lömker.
PCQ Pascal interface to the library included, written by Chris Pressey.
Version 1.1 of RTPatch included.
*****************************************************************************
RELEASE 2.1a (Library version 38.385 [1.3] - 38.1002 [2.0])
Serious bug fixed: file requester would crash if you tried to type a
filename in a requester with a shared IDCMP port.
Some other small bug fixes.
rtGetString() and rtGetLong() will activate the string/integer gadget
when the requester window becomes active. This should make life easier
for people using AutoPoint or other sunmouse-like utilities.
New keyboard shortcuts for file requester: pressing Control-Up/Down will
bring you to the start/end of the directory list.
Kickstart 2.0 (or higher) version of ReqTools only: Faster directory
reading from a fast hard disk or ram disk. The file requester now
tries to read as many files as possible in .5 seconds. If this time-out
expires, or all files have been read, the display is updated for the
first time. After this initial time-out period the display will be
updated every .2 seconds. This reduces the amount of rendering calls
substantially and therefore results in faster directory loading.
German catalog for preference editor included. German strings in install
script have also been updated (by Steffen Salzmann, thanks Steffen).
Danish catalog for preference editor included (thanks Per).
*****************************************************************************
RELEASE 2.1b (Library version 38.388 [1.3] - 38.1017 [2.0])
Recompiled with SAS/C 6.1: fixes bug of the filerequester not returning
CALL_HANDLER when the RT_ReqHandler tag was used. Seems SAS/C 6.0
converted (APTR)0x80000000 to 0. Don't you just love compiler bugs :-)
File requester will clear the current selection when the filename string
gadget is changed. This allows you to use the filename completion
multiple times in a row. Also, using Amiga-X in the string gadget will
no longer bring you to the start of the directory.
RTSC_ModeFromScreen will now correctly set the autoscroll setting. The
default autoscroll setting is now also correctly read from the screen
the requester will appear on. Changed reqtools.doc to reflect this
change.
Volume and directory requesters will no longer exit when Shift Return is
pressed (special request by per Jacobsen :-).
Kickstart 2.0 version of ReqTools only: Requesters with an inactive
parent window (using the RT_Window tag) will also open in inactive
state. Suggested by Jorrit Tyberghein.
Now respects EZREQF_NORETURNKEY flag also for single button EZRequesters,
so the Return shortcut is disabled. Thanks to Bert Wynants for
pointing this out. As a result of this most single-button requesters
will have their buttontext printed in bold, showing you can use the
return key.
String gadget edit hook changed to be more according to the rules (using
sgwork->EditOp instead of checking for Amiga-X and Amiga-Q by itself).
Some small bugs in include files fixed. Thanks to Magnus Holmgren and
Per Jacobsen for reporting these.
Italian catalog for preference editor included (thanks Michele).
Spanish catalogs for library and preference editor included. Translated
by Juan Carlos Sanchez Garcia. I had to edit the catalog for the
preference editor so the prefs window would fit on a 640x200 screen.
My apologies to spanish ReqTools users if I made mistakes in doing so.
German catalog file for preference editor fixed.
Version 1.1a of RTPatch included.
*****************************************************************************
RELEASE 2.1c (Library version 38.388 [1.3] - 38.1020 [2.0])
Requesters with an inactive parent window will no longer open inactive.
This new feature of ReqTools 2.1b was removed since it was more
annoying than helpful. Jorrit will be shot at dawn... ;-)
Palette color spread function was broken in Kickstart 2.0 version of the
library. Fixed. Thanks to Jesper Juul for reporting this bug.
New danish catalogs and danish install text included (thanks Jesper).
German catalog for library fixed, some keyboard shortcut keys were used
twice.
French catalog for preference editor included (thanks Benoit).
*****************************************************************************
RELEASE 2.1d (Library version 38.388 [1.3] - 38.1022 [2.0])
Major new feature: rexx interface to the library. RexxReqTools is a
small library that offers lots of rexx commands to use just about all
ReqTools requesters. Many thanks to Rafael D'Halleweyn for writing
this library and giving me permission to include it with ReqTools.
Finally fixed the refresh bug in the Kickstart 2.0 version of ReqTools.
Seems it was a bug in the 3.00 ROM. ReqTools now uses the 'bug-less'
ScrollWindowRaster() for its window scrolling on 3.0. Thank you
Peter Cherna! :-)
A small bug popped up in the rewriting of the string gadget edit hook
(Kickstart 2.0 version of ReqTools): keyboard shortcuts were no
longer possible from integer gadgets. Fixed.
Added extra message to install script. Must still be translated for all
languages except english and dutch.
Fixed bug in 'reqtools.i'. Missing rtfi_IntuiMsgFunc, rtfo_IntuiMsgFunc
and rtsc_IntuiMsgFunc caused several offsets to be wrong. Thanks to
Dirk Vangestel for reporting this.
Fixed bug in SAS/C and Manx C glue code. Stubs for rtReqHandler() and
rtReqHandlerA() didn't save the A6 register.
Included assembly version of demo source (converted by Dirk Vangestel).
Most glue code has been archived with LhA (not everyone needs all the
glue code, just de-archive what you need).
Fixed enforcer hit in ReqTools preference editor, version 2.1a included.
Version 1.1b of RTPatch included.
*****************************************************************************
RELEASE 2.1e (Library version 38.388 [1.3] - 38.1042 [2.0])
Fixed bug in 'clib/reqtools_protos.h' include file: rtFontRequest() and
rtScreenModeRequest() had wrong prototypes causing the ReqHandler
feature to fail to work (without casting). Thanks to Ebbe Holleris
Petersen for reporting this problem.
Fixed small problem in rtEZRequest() requester: if body text was too
large to fit on the screen and was clipped you could not click on the
requester's buttons.
Fixed problem with leading '/' in paths entered in file string gadget.
Fixed enforcer hits when typing in font requester size gadget.
Fixed problem with first Shift Down in a file requester with less
entries than are possibly visible selecting a non-existant entry.
Fixed problem with typing a single '/' in the path gadget. This caused
the file requester to jump to the parent, but the path gadget was
incorrectly cleared.
Bug fix: palette requester didn't correctly restore the correct colors
when it was canceled on an AGA machine with colors from a 24 bit
palette. Thanks to Felix Braun for reporting this. Full AGA support
will be something for the next release.
Fixed bug in backfill code. Didn't always clear window background
properly on screens with more than 2 bitplanes. Thanks to David Nouls
for reporting this.
Stack checking code in Kickstart 2.0 version of the library completely
rewritten. Now uses exec.library StackSwap() to swap the stack.
Glue code for SAS/C enhanced. Code hunks are now named 'text' instead
of 'code', allowing real small code linking. Glue code now supports
the autoinitialization and autotermination feature of SAS/C 6.0. If
you define ReqToolsBase as external and link with reqtools.lib or
reqtoolsnb.lib, reqtools.library will be automatically opened.
Thanks to Brian Ipsen for the suggestion.
Fixed small bug with rtSetWaitPointer() in HighSpeed Pascal interface.
Portugese catalogs and install text for library and preference editor
included. Translated by Pedro Aguiar.
Added 'Español' and 'Português' check boxes to languages in install
script.
German strings in install script updated by Steffen Salzmann.
Swedish catalog for library adjusted a bit.
GCC interface to the library included. Written by Marc Duponcheel.
Release 1.2b of RexxReqTools included.
*****************************************************************************
RELEASE 2.1f (Library version 38.390 [1.3] - 38.1095 [2.0])
Screenmode requester now knows about EURO72, EURO36, SUPER72, DBLNTSC
and DBLPAL monitors.
rtGetVScreenSize() now uses VideoControl() if possible to get the
visible screen size.
File requester, font requester and screenmode requester now ignore
all key presses before the requester is completely set up. This
should just about eliminate the problem of a gadget getting pressed
because the user typed too quickly.
File requester will use the device name of a volume if it's name is
not unique (multiple floppies called 'Empty' for example).
On Kickstart 3.0 or higher the file, font and screenmode requesters will
use memory pools.
Palette requester is now fully AGA compatible. It uses the DisplayInfo
database to find out the palette range of the screen it is opened on.
It supports 256 colors out of a pallete of 16,8 million and should
support even beyond that (not tested since there currently is nothing
that goes beyond that :-).
Bug fix: using the close gadget of the palette requester returned 0
instead of -1 for cancel.
Bug fix: rtGetLong() requester completely misplaced the min/max display
when RTGL_TextFmt was used.
Bug fix: fixed enforcer hits in file requester when FREQF_SELECTDIRS
was used and a directory was double-clicked.
Bug fix: font style handling of rtFontRequest() was almost completely
broken. Should work ok now.
Bug fix: min/max display in rtGetLong() requester would become garbled
during window-refreshing when the RT_ReqHandler feature was used.
Bug fix: clearing the font name gadget in the rtFontRequest() requester
and pressing Return caused the requester to return TRUE although
the 'Cancel' gadget was visibly selected. The requester now properly
returns FALSE.
Fixed some minor errors in include files and autodoc.
Some updated catalogs included.
French install text included, translated by Benoit Mortier.
Release 1.2c of RexxReqTools included.
Version 1.2 of RTPatch included.
*****************************************************************************
RELEASE 2.2 (Library version 38.390 [1.3] - 38.1194 [2.0])
-----------------------------------------------------------------------
NOTE: All changes listed below are for the Kickstart 2.0 and higher
version of the library (unless stated otherwise). Development of
the 1.3 compatible version of ReqTools has more or less stopped.
-----------------------------------------------------------------------
File, font and screenmode are now able to use proportional fonts, making
them truly font-sensitive. Palette requester will accept and use a
proportional font on Kickstart 3.0 or higher only. Note: this
required a small catalog change, so be sure to update your catalogs.
Added cool LED indicator left of the drawer gadget in the file requester.
People who dislike this can turn this feature off in the ReqTools 2.2
preference editor.
File requester will now make sure 'freq->Dir' and 'filename' are
up-to-date when a callback hook is called (RTFI_FilterFunc and
RT_IntuiMsgFunc). If you want to rely on this please check for
this _exact_ release of ReqTools (or higher of course).
File requester will show file sizes in localized form now.
Screenmode requester now handles color depths greater than 8192 colors
correctly (will use 16K, 32K, 16M,... for high color values).
Previously the window borders could get overwritten, oops :-)
Removed hardcoded monitor names from screenmode requester code and made
screenmode requester construct the name for an unnamed mode from the
monitor name and dimensions.
Bug fix: when the SCREQF_GUIMODES flag is used the screenmode requester
will no longer show modes that haven't got the DIPF_IS_WB flag set.
This fixes the problem of truecolor Picasso II modes showing up.
Added a temporary workaround for a SAS/C bug (6.50 and earlier) creating
incorrect code for taglist switches. Programs with a missing TAG_END
in one of their taglists will no longer crash (but are still buggy ;-)
Changed rtLockWindow() and rtUnlockWindow() nesting code. Should work
much better now and allow for infinite nesting.
Improved calculation of spacing value in rtGetVScreenSize(), will now
properly return a spacing of 4 for A2024 monitor for example.
Release 1.2e of RexxReqTools included.
Version 2.2 of ReqTools preference editor included.
Version 1.3 of RTPatch included.
*****************************************************************************
RELEASE 2.2a (Library version 38.390 [1.3] - 38.1210 [2.0])
Bug fix: on Kickstart 3.0 (V39) the palette requester's slider values
were sometimes incorrectly displayed (palette requester will now only
use GTJ_RIGHT on V40 or higher).
Bug fix: if no locale.library was found (Workbench 2.04) the file and
font requesters would display a 'D' instead of the file/font size.
Bug fix: rtSpread() now handles the case where the total size of all
objects is larger than the total available size correctly (objects will
overlap in this case of course).
Quirk fix: file requester will no longer overlap the button gadgets when
they get too wide for the screen (german locale and lores screen for
example). It will scale the buttons in size to make them fit.
Screenmode requester will no longer fail silently if the current mode
is invalid. It now simply picks the first mode id from the current
list of modes.
Changed display mode filtering code slightly to fix the problem with
Picasso II monitor 2.14 (or higher) modes not showing up in the
screenmode requester.
*****************************************************************************
RELEASE 2.2b (Library version 38.390 [1.3] - 38.1248 [2.0])
Bug fix: screenmode requester had some selection problems on certain
graphic cards (Spectrum, Merlin,...). Should be fixed now.
Directory requester will no longer hide the files in directories, but
will show them ghosted now. Note that directories will always be
shown first in the directory requester, regardless of the ReqTools
prefs setting.
File requester now has directory completion as well as filename
completion. Pressing Alt up/down arrow will select the directory
that most closely matches the contents of the filename string gadget.
The file requester now also has volume and assign completion. Using
up/down arrow will select the closest matching volume. Use the Alt
qualifier to select the closest matching assign.
The volume list will now first show the volume name, followed by the
device name.
New switch in the ReqTools preference editor to force the use of the
system default font instead of the screen font in the file, volume,
font, screenmode and palette requesters.
Fixed enforcer hits in font and screenmode requesters when an intuition
callback function (RT_IntuiMsgFunc tag) was used.
Improved method of filtering DOS devices that are shown in the file and
volume requesters.
Palette requester: pressing either Alt key with the keyboard shortcut
for red, green or blue will adjust the color value in steps of 8.
Fixed SAS/C glue code to be compatible again with the autoinitialization
and autotermination feature of SAS/C 6.50 and higher.
Added SAS/C 6.x 'tagcall' pragmas to 'include/pragmas/reqtools.h'.
Included new glue code for GCC. Written by Gunther Nikl.
Version 2.2b of ReqTools preference editor included.
*****************************************************************************
RELEASE 2.2c (Library version 38.390 [1.3] - 38.1266 [2.0])
Since using VideoControl() to get the visible display clip only seems
to work when the screen in question is the frontmost screen the
rtGetVScreenSize() function now falls back to using QueryOverscan()
for screens that are in the back (thanks to Dietmar Eilert for
reporting this).
Changed method of filtering DOS devices that are shown in the file and
volume requesters again.
Window size and gadget layout is now calculated in a sysihack compatible
way.
Bug fix: screenmode requester should no longer "lose" characters in the
color slider values on Kickstarts below V40 (3.1).
Bug fix: fixed enforcer hits that occured when the screenmode requester
came up with an empty list (all modes filtered out e.g.).
Minor bug fix: backfill pattern in EZRequesters now uses BACKGROUNDPEN
instead of pen 0.
Polish catalogs for library and preference editor included. Translated
by Juan Carlos Marcin Orlowski.
*****************************************************************************
RELEASE 2.3 (Library version 38.1292)
-----------------------------------------------------------------------
NOTE: Update work made by Magnus Holmgren. See start of this file for
more information.
-----------------------------------------------------------------------
Release 1.3 of RexxReqTools included.
Recompiled using DICE 3.01. This was forced by the fact that I don't
have SAS/C (yet, at lest). As a result, the library now is a couple
of KBs larger.
Bug fix: screenmode requester now works better when showing a depth
gadget for HAM screens. Most notably, the requester will not crash
under certain circumstances, and will also handle HAM modes with a
depth of 8 (earlier, only depth 6 was supported). The HAM support was
a kind of hack, which was incomplete. Its still a hack, but it is
better now. ;)
In the file requester, when displaying the volumes list, RMB acts like
pressing the Get gadget. I.e., you can go back to the original list
by a simple RMB click. The "Volumes" gadget also acts like Get, if
pressed while the volume list is displayed.
The resizable requesters now uses "OS 3 zooming". I.e., the requester
doesn't move (unless needed) when zoomed.
Added zoom gadget for the palette requester. When zoomed, the
requester resizes to "titlebar" size; again, using OS 3 zooming if
possible.
Updated the Swedish translation a little.
In rtEZRequest, function keys can now be used to select the first ten
gadgets, if enabled in the prefs editor.
Added the 'Use function keys' option to the prefs program. Currently
this is the only way to enable this function. In the future there
will probably be a new tag/flag for this as well.
Increased the stack some requester functions allocates, if needed.
Should solve the crashing requesters with some programs when e.g.
CyberGraphX is installed.
Added missing tags to ReqTools.h (RTGL_CenterText and RTGS_CenterText).
Fixed the prefs editor so that all gadgets are updated when new
settings are loaded.
Rewrote the DICE-C glue. Now includes autoopen code.
New distribution layout. There are still two different archives, but
the contents are different little:
reqtools<ver>.lha is replaced with reqtools<ver>dev.lha, and contains
only the developer files (glue, examples, includes and autodocs). The
user archive (reqtools<ver>usr.lha) haven't changed.
The filerequester (and the font- and screenmode requester as well) will
now look better when the screen they open on have "strange" dri-pens.
Support for OS 1.3 completely dropped. The 1.3 version of
reqtools.library is no longer included.
Made a minor change in the ASL patch in RTPatch, so that it returns
errors more correctly (avoids annoying error requesters after having
cancelled certain file requesters). I hope the reassemble didn't
break anything. I haven't tested it much. ;)
*****************************************************************************
RELEASE 2.4 (Library version 38.1296)
As you may have noticed, a slightly different version numbering scheme
have been adopted. I simply removed the letter extensions. ;)
Fixed a problem in RTPatch, introduced in the re-assembly in 2.3. It
would (often, but not always) print way too much text.
Made some fixes to the installation script. I had forgot to change it.
;)
Hopefully fixed the startup crash in the preferences editor.
Included glue for Maxon Pascal, written by Falk Zuehlsdorff.
rtEZRequestTags() was missing in new DICE glue.
Fixed bug in password requester (used by powerpacker.library). DICE bug
if you ask me. ;)
French, Italian and Polish catalogs updated.
*****************************************************************************
RELEASE 2.5 (Library version 38.1387)
Now really includes RexxReqTools 1.3. Sorry about that.
RTPatch now reports itself as 1.4 (forgot to assemble that minor change
;).
Improved pragmas for SAS/C, to make better use of the tagcall. Note
that this may cause problems (I got a CXERR in one case). Also
changed the name to "reqtools_pragmas.h".
Changed the LED rendering a little. It is now done earlier, to work
nicer with custom handlers that can be slow in certain operations
(like ArcHandler).
Recompiled with SAS/C again. ;) I don't think any problem have been
introduced due to this.
Increased the pattern text buffer in the file requester.
The volume list in the file requester should now show all real volumes,
including e.g. network volumes. In fact, it should display the same
volumes as ASL, since the same algorithm is used. Thanks to Martin
Taillefer for showing me how to do it properly.
Added a little "hack" to make ReqTools work better with BetterEdit. It
was so simple, so why not? ;)
Added color wheel to the palette requester! There is a switch in the
preferences editor, in case you don't like it. Some notes: You need
properly installed colorwheel and gradientslider gadgets (part of OS
3.0 or higher) for it to be displayed. The colorwheel will only show
up if the screen and window are large enough. The gradient slider
doesn't have any fancy background currently, as it requires a rather
large number of colors to be displayed nicely, IMHO. And most
importantly; the top value of the slider is to the *left* for some
reason. Not my fault! ;)
Selecting parent in the file requester, when the parent does not exist
does now work. Sort of. The drawer gadget is now updated, so that you
can "parent back" to a drawer that do exist.
In the palette requester, when you are in copy, swap and spread modes,
the title of the window will show the current mode.
The palette requester should now work better on deep screens (more than
8 bits). It will then limit itself to display only 256 colors.
*****************************************************************************
RELEASE 2.6 (Library version 38.1413)
Forgot to update the proto include file in 2.5.
The ReqTools preferences program got wrong (localized) strings
sometimes.
The file requester still did not show all volumes (but the volume
requester sometimes did). I also realized that this change in the
volume listing code means that the VREQF_ALLDISKS flags doesn't
work. A workaround would be possible (for most disks at least), but
is it really worth it?
Fixed a bug in the volume listing code, that could cause an incorrect
device name to be added to the volume name (if the dol_Task was NULL).
E-version of the demo included.
The color wheel didn't have its initial color right. Seems like
WHEEL_HSB doesn't work on ON_NEW...
Added soft link support to the file requester. Note that hooks need to
read the link themselves.
Russian translation added.
Updated Installer script to make use of some new features.
The palette requester would try to load the color wheel, and cause
Enforcer hits (or worse), when the wheel shouldn't be displayed.
The screen depth gadget in the screen mode requester didn't always
behave properly. Also added some safety checks.
The copy and spread gadgets in the palette requesters didn't work
properly. Made a silly mistake when adding the mode indicator in the
window title. ;)
The color wheel gadget will now always render in monochrome state, to
minimize the impact on the screen in question.
*****************************************************************************
reqtools.library written by Nico François and Magnus Holmgren
Thanks to o Kai Bolay for writing the Oberon interface,
o Frank Lömker and Michael Griebling for writing the Modula-2
interfaces,
o Jan van den Baard and Magnus Holmgren for writing the Dice C
libraries,
o Martin Steppler for writing the Manx C libraries,
o Richard Waspe and Gunter Indenhoek for writing the HighSpeed
Pascal interfaces,
o Chris Pressey for writing the PCQ Pascal interface,
o Federico Giannici for the useful suggestions,
o Peter Stuer, Gunter Indenhoek, Jorrit Tyberghein, Ives Aerts,
Bert Wynants, Mathias Korsbäck, Christoffer Zettermark and
Roger Nordin for beta-testing,
o Michele Giorato for the Italian catalog translations,
o Patrik Nordvall for the Swedish catalog translation,
o Per Jacobsen/Jesper Juul for the Danish catalog translations,
o Mario Gonzalez for the Norwegian catalog translations,
o Juan Carlos Sanchez Garcia for the Spanish translations,
o Pedro Aguiar for the Portugese translations,
o Benoit Mortier/Georges Goncalves for the French catalog translation,
o Dirk Vangestel for the assembly demo source,
o Marc Duponcheel and Gunther Nikl for the GCC glue code,
o Falk Zuehlsdorff for the Maxon Pascal glue code,
o Marcin Orlowski for the Polish translation,
o Kertai Gábor for the Hungarian translation,
o Dmitry Mikhilov for the Russian translation,
o Rafael D'Halleweyn for writing RexxReqTools,
o Herman Stevens for being my Fido boss node and having such a
great Amiga BBS,
o All registered ReqTools users/developers.
"Cry, if you want to cry
If it helps you see
If it clears your eyes" - Soundgarden
(C) 1991-1994 Nico François
1995-1996 Magnus Holmgren